package com.shujia;


import org.apache.hadoop.hive.ql.exec.UDF;

/*
* 功能: 给定字符串能够将字符串的首字母大写，如果都是大写，那么将非首字母变为小写
*
* // ③ 将jar包添加至HIVE的class path 中
* add jar /usr/local/soft/jars/hiveCode-1.0.jar
*
* // ④创建临时函数（临时函数只能现在当前HIVE会话中使用，当会话断开，那么函数失效）
*  create temporary function myudf as 'com.shujia.MyUDF';
*
* // ④创建永久函数
*  create function my_db.my_lower as 'com.example.hive.udf.Lower';
*
* // ⑤ 函数调用
* */

// ① 自定义类需要继承 UDF
public class MyUDF extends UDF {
    // ② 需要实现evaluate函数，函数名称不能改动
    //     并且函数内对应变量类型可以是 JAVA中的数据类型，也可以是Hadoop中的数据类型
    public String evaluate(String word){
        String lower_word = word.toLowerCase();
        String first = lower_word.substring(0,1).toUpperCase();
        return first+lower_word.substring(1);
    }
}
/**
 *  存在的问题？
 *      在该方式中，没有办法对函数的参数个数以及类型做判断，并给与提示
 *         同时，该方式没有函数的使用提示信息
 */

